doe_evaluate_model Interface

public interface doe_evaluate_model

Module Procedures

private function doe_evaluate_model_1(nway, beta, x, map) result(rst)

Evaluates the model of the following form.

The first line of terms (through the squared terms) is included for a two-way model, and the remaining terms are added for a three-way model.
Each unique combination of factors appears exactly once. For example, with two factors, a two-way model is:

The coefficients are ordered as: constant, main effects, cross terms (i < j, lexicographic), squared terms, and (three-way only) triple cross terms (i < j < k), X_i**2 * X_j terms (i, then j, with i /= j), and cubed terms.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: nway

The number of interaction levels. Currently, this algorithm supports a maximum of three-way interaction.

real(kind=real64), intent(in), dimension(:) :: beta

The model coefficients.

real(kind=real64), intent(in), dimension(:,:) :: x

The M-by-N matrix containing the M values of each of the N factors at which to evaluate the model.

logical, intent(in), optional, target, dimension(:) :: map

An optional array of the same size as beta that can be used to eliminate a parameter from the model (false), or keep a parameter in the model (true). If not supplied, all parameters will be assumed to be part of the model as if the array were filled with all true values.

Return Value real(kind=real64), allocatable, dimension(:)

The resulting M-element array.

private function doe_evaluate_model_2(mdl, x) result(rst)

Evaluates the model of the following form.

The first line of terms (through the squared terms) is included for a two-way model, and the remaining terms are added for a three-way model.
Each unique combination of factors appears exactly once. For example, with two factors, a two-way model is:

The coefficients are ordered as: constant, main effects, cross terms (i < j, lexicographic), squared terms, and (three-way only) triple cross terms (i < j < k), X_i**2 * X_j terms (i, then j, with i /= j), and cubed terms.

Arguments

Type IntentOptional Attributes Name
class(doe_model), intent(in) :: mdl

The model to evaluate.

real(kind=real64), intent(in), dimension(:,:) :: x

The M-by-N matrix containing the M values of each of the N factors at which to evaluate the model.

Return Value real(kind=real64), allocatable, dimension(:)

The resulting M-element array.